# -*- coding: utf-8 -*-
# @Time        :2024/10/31 下午4:54
# @Author      :文刀水寿
# @File        : 03_数据计算_reduceByKey.py
"""
 @Description :演示rdd的reduceByKey成员方法的使用
 rdd.reduceBykey(func)
 针对KV型RDD，自动按照key分组，然后根据你提供的聚合逻辑，完成组内数据value的聚合操作
"""
from pyspark import SparkConf, SparkContext
import os

os.environ['PYSPARK_PYTHON'] = "D:/Python/python.exe"

conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)

# 准备一个RDD
rdd = sc.parallelize([('男', 99), ('男', 88), ('女', 99), ('女', 66)])

# 求男生和女生俩个组的成绩之和
rdd2 = rdd.reduceByKey(lambda a, b: a + b)
print(rdd2.collect())
